Computers and other electronic devices typically include an input interface with which an operator may enter data. A keyboard is an example of an input interface for receiving data from an operator. Further, computers and other electronic devices typically include an output interface, such as a display, for presenting data to an operator. The output interface may allow an operator to perceive data that is entered via an input interface and the result of the data that is entered via the input interface.
It is often desirable to protect the privacy of data that is entered via an input interface or the privacy of data presented via an output interface. For example, in a public setting, an operator may desire to protect the privacy of a social security number entered into a computer via a keyboard. A nearby person may be able to obtain the digits of the social security number by watching the keys as they are depressed by the operator. Alternatively, the nearby person may be able to obtain the entered social security number by seeing the numbers as they are displayed on the computer's display.
The data entered into an input interface may also be obtained by a tool known as a keystroke logger. A keystroke logger is a program that runs in the background of a computer for recording all the keystrokes entered by an operator. The keystroke data may be logged and transmitted to an attacker at another computer. The attacker may then review the keystrokes in order to find passwords or obtain information that could be used to compromise an application or computer in which the data is entered.
Some techniques have been developed for protecting the data entered via an input interface. For example, one device encrypts keystrokes entered by the operator and communicates the encrypted keystrokes to a driver that decrypts the keystrokes so that they may be understood by an application. However, even with this device, entered data may not be entirely secure because a nearby person may still be able to obtain the entered data by watching as the operator enters the data.
Another technique for protecting data includes remapping the keys of a keyboard. In this case, the actual data entered by depressing the keys of a keyboard is different than the labeling of the keys of the keyboard. For example, a key labeled “A” may actually enter in data for the letter “B”. A nearby person would not be able to determine the actual data entered by watching the keys depressed by the operator unless he or she had knowledge of how the keyboard is remapped. However, a keystroke logger may be able to obtain the entered data by recording the keystrokes entered by the operator. In addition, this approach is limited since it does not take into account a privacy level associated with the data entry.
In view of the shortcomings of existing techniques for protecting the privacy of entered data, there exists a need for improved methods, systems, and computer program products for reconfiguring an input interface to protect the privacy of data.